package org.ch02.test01.demo02;

import org.ch02.entity.Student;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

/**
 * 获取某个类的 Class 对象 - 方法二
 * 类.class
 *
 * 注意：此案例完全基于反射来实现类的操作 - 灵活性，拓展性
 *
 * @author lwj
 * @date 2025-03-17
 * @vesion 1.0.0
 */
public class MainTest01 {
    public static void main(String[] args) throws Exception{
        // 1.获取 Student 类的 Class 对象
        Class<Student> clazz = Student.class;

        // 在反射中，把类相关信息封装为相关的对象
        // 2.获取类的构造方法对象 - Constructor
        Constructor<Student> constructor = clazz.getConstructor();

        // 3.实例化对象
        Student student = constructor.newInstance();

        // 4.调用方法
        student.sayHello("张三");
    }
}
